<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>认识promise</title>
</head>

<body>
  <script>

    // 一.三种状态: pendding 、fufilled 、rejected
    // 状态模式；状态机；

    // let p = new Promise((resolve,reject)=>{
    // 	resolve("success11");
    // 	reject("error");
    // })

    // // 1.pendding：等待状态；  PromiseResult 是 undefined
    // console.log(p);  // pendding

    // // 2.resolved 或者 fufilled  ： 成功状态；PromiseResult：可以通过参数来设置；
    // // 需要在回调里调用 resolve方法 ，那么就可以得到一个成功状态的promise对象；
    // // console.log(p);

    // // 3.rejected:失败状态   PromiseResult：也可以通过 参数设置

    // console.log(p);


    // let p = new Promise((resolve, reject) => {

    // })
    // console.log(p)

    // let p = new Promise((resolve, reject) => {
    //   resolve('成功回调')
    // })
    // console.log(p)

    // let p = new Promise((resolve, reject) => {
    //   reject('失败回调')
    // })
    // console.log(p)



    // 二、每个promise对象 都会有一个then方法；then方法里会有2种回调 1.onResolved（成功的回调函数）  2.onRejected（失败的回调函数）;
    // let p = new Promise((resolve,reject)=>{
    // 	resolve("success");
    // 	reject("错误");
    // })
    // // // promise对象会有三种状态 ：1.pendding 状态（then里的回调没有执行）  2.fufilled状态 3，rejected状态
    // p.then((res)=>{
    // 	console.log("onResolved",res);
    // },(err)=>{
    // 	console.log("onRejected",err);
    // })


    // function ajax(cb) {
    //   setTimeout(() => {
    //     console.log('ajax获取完毕');
    //     cb();
    //   }, 1000);
    // }
    // ajax(function () {
    //   console.log('ajax执行完了')
    // })

    // 改写promise
    let ajax = new Promise((res,rej)=>{
      setTimeout(() => {
        res('ajax获取完毕')
      }, 1000);
    })
    ajax.then(
      (res)=>{
        console.log(res)
        console.log('ajax执行完了')
      }
    )


  </script>
</body>

</html>